home *** CD-ROM | disk | FTP | other *** search
- Overview of Cyberterm,
- a Cyberspace Protocol Implementation
-
- KEYWORDS
-
- cyberspace, protocol, Cyberterm, virtual reality, SECTOR, AGENT
-
- AUTHOR
-
- Michael Snoswell, Programmer in Imaging Systems, Vision Systems Limited,
- Second Avenue, Technology Park, The Levels, 5095, South Australia.
-
- ABSTRACT
-
- Although the concept of cyberspace has variously been used to describe
- concepts ranging from being in a particular directory in a file system to a
- full immersion/neural-tap type 3D environment, few attempts have been
- made to establish a fundamental connection layer under which any
- independent interaction within such an environment may take place. A
- number of system concepts have been developed that would be essential
- tools towards realising the more advanced version of cyberspace mentioned
- above (eg head mounted displays, datagloves, 3D 'Rooms', MUDs etc) but
- little work has been done on producing a base level integration layer between
- any of these systems in an extensible fashion. The problem is analogous
- to the development of words with which to communicate, rather than
- focusing on sentence structure, or poetry. Once the words are there and
- the grammer is established, any data or concept can be communicated.
- The Cyberterm project arose from a desire to provide a freely available
- framework for communication, with example code implementation so that this
- basic communication hurdle could be overcome and the more abstract
- features of virtual reality, cyberspace conferenceing etc could be focused
- upon and developed.
- This protocol has been called Cyberspace Protocol (CP) and software
- which implements this protocol is called a Cyberterm (CT). The CP version
- is currently 0.3 beta.
-
- THIS DOCUMENT
-
- This document is an overview of ideas and concepts that have evolved
- over the last year or so. It is not meant to be comprehensive, exhaustive,
- complete or static.
-
- The first part of this article discusses some broad ideas and then
- gives a brief description of the terms used. Following this is a semi
- technical discussion on a walk though some of aspects of the system.
- After that a brief description of the software as it stands is
- given, along with projected milestones.
-
- This article mentions many ideas and concepts that stem from the use
- and implementation of the Cyberspace Protocal (hereafter called CP).
- A large portion of this paper discusses broad uses of CP and the resulting
- system characteristics rather than focusing on the protocol alone.
- The reason for this is two-fold:
-
- 1) The protocol by itself would seem pretty meaningless without
- describing how it works and how its resulting use affects the
- dynamics of a system, and
-
- 2) The protocol isn't firmly set. As the system is developed, more
- holes are found and things change. There are a dozen or so basic
- messages and a dozen or so rules that are followed, these are in flux
- although a base set is firmly established.
-
- It is hoped that this paper will give readers some familiarity with the
- type of system that is beeing aimed for. A more complete description
- will be left to the source code itself when it is released.
-
- Note: Where possible terms in capitals refer to concepts/objects which
- are peculiar to this system. This is to try to differentiate items
- when using English to describe some ideas etc, to make things a bit clearer.
-
-
-
- SYSTEM OVERVIEW
-
- The need for a low cost, low bandwidth cyberterminal (CYBERTERM) has
- arisen due to the increasing need to communicate over existing data
- channels with existing hardware. The system is aimed for widespread use
- over a number of platforms and data connections. Initial release is planned
- for late '92 in a shareware format with full source code for all available
- systems.
-
-
-
- INTERFACE
-
- The interface is simply using the screen with the keyboard and mouse to
- provide a window view into a 3D environment.
-
- The addition of Glove, HMD and other devices will be encouraged but not
- initally supported and will not be required.
-
-
-
- INITIAL SYSTEM
-
- The system will initially be designed around a 386SX PC (or better),
- with Amiga and X11 (on a Sun IPC) ports being made, but with no special
- provisos for these machines at this point. All connections will be via
- modem with possible TCP/IP connections for the Sun. Each Cyberterm is
- fully self contained on each machine and can operate on a stand-alone basis.
- Software is currently being written and a beta version will be available
- in a few months (now is July '92). Release will be via request to selected
- users for immediate feedback, followed by general shareware release.
-
-
-
- SYSTEM ARCHITECHETURE
-
- The whole nature of the cyberspace is controlled by the messages that are
- sent, which implicitly define the rules for objects, users etc within the
- cyberspace. To more clearly describe the nature of these rules and
- messages, a number of terms have been borrowed and coined to describe
- new/borrowed concepts. Once these terms are defined, then it becomes
- much clearer as to how the whole thing fits together and the interaction of
- objects and the nature of this interaction will become evident as you
- understand the rules and contraints which define the behaviour of the
- cyberspace.
-
-
-
- DEFINITIONS
-
- These definitions are brief and are given to allow a fuller understanding of
- the descriptions to follow.
-
- CLIENT
-
- A CLIENT is the term to describe a person (USER) who is connected to a
- system. The CLIENT may be automated (an AGENT).
-
- SERVER
-
- A SERVER is the central message handling facility which handles the data
- flow between CLIENTS. (A bit like a BBS)
-
- LOCAL SERVER (LS)
-
- A LOCAL SERVER is a SERVER that resides on the same machine as the
- CLIENT.
-
- REMOTE SERVER (RS)
-
- A REMOTE SERVER is a SERVER which is not at the same physical machine as
- the CLIENT in question.
-
- CYBERTERM (CT)
-
- This is the term to define the CLIENT and the LOCAL SERVER together which a USER
- interfaces to. This all resides on his local machine.
-
- SECTOR
-
- A SECTOR is a region of CYBERSPACE which is controlled by a single SERVER.
-
- SECTOR CONTROLLER (SC)
-
- This is another term for the SERVER, but which covers the CLIENT that is
- local to that SERVER (akin to a News conference moderator or a BBS
- sysop).
-
- PERMASPACE (PS)
-
- PERMASPACE is an area of the SECTOR which has been allocated for a
- specific purpose. The data defining this region resides in the SC which
- controls the SECTOR.
-
- PRIVATE PERMASPACE (PPS)
-
- PERMASPACE can belong to a single CLIENT (or else it belongs to the SC). If a
- USER acquires a region of a SECTOR for their own use, that region is
- called PRIVATE PERMASPACE and is controlled by the owner CLIENT's LOCAL
- SECTOR CONTROLLER (ie the SERVER which resides on their own machine).
-
- LINE
-
- A LINE is the connection from the SERVERs to the CLIENTS, LINEs can be
- virtual or real.
-
- AGENTS
-
- AGENTS are macros that use the messages and protocols of the system to
- perform tasks as the USER himself would. There are 3 types of AGENTS
- defined so far. PRIVATE AGENTS, SC AGENTS and INDEPENDENT AGENTS.
-
- ASPECT
-
- ASPECT is the description of an OBJECT and covers visual and audio
- definitions (dynamic and static) in an extensible hierarchy of
- increasing complexity. All objects have default ASPECTs.
-
- CYBERSPACE CONFERENCING (CBC)
-
- This is the initial "let's get together and have a chat" aim of the
- system and is useful when people ask "So what are you working on?". You
- say, "I'm working on a Cyberspace Conferencing system", or something
- like that.
-
- GUEST
-
- A GUEST is a CLIENT who is remote to your location who is connected to
- your LOCAL SERVER.
-
- BBS
-
- A bulletin board system, which when in "chat" or "conference" mode is a
- good analogy for what this system will build upon (ie a graphical
- version of a BBS CB channel.)
-
- OBJECTS
-
- OBJECTs are any things which exist within a SECTOR and are listed in a
- SERVER database. This includes CLIENTS, AGENTS, PERMASPACE etc.
-
- ID
-
- ID applies to AGENTS, CLIENTS and SERVERS. It is a unique 32 bit number
- where the top (MS) 4 bits define what type of object the ID belongs to.
-
- FAR - 1,000 units
- NEAR - 100 units
- CLOSE - 10 units
- VERY_CLOSE - 1 unit (ie 26 adjacent units)
-
-
-
- A DEMONSTRATION RUN THROUGH
-
- Perhaps the best way to show how the various features of the system interact
- and the effect of the protocol on system implementation is to give a
- description of a typical session on a CT. This description will not be
- exhaustive and will give only some technical details of the message passing
- that will take place during such a session. A complete description of all
- the features will not be given here as that would take too long and this
- is only meant to be an overview. However, what I hope is to be able to
- give some insight into what the working system will be like.
-
- First off when you start up the CYBERTERM you have a blank screen with maybe
- a few control buttons around the edges.
-
- The first step is to log into the LOCAL SERVER. Now this is a SECTOR
- CONTROLLER that resides on the same machine and in the first incarnation of
- the software is all in the same executable.
-
- This connection is done by hitting the 'connect' key (or mouse button etc).
- This will send a REQUEST_TO_ENTER message to your LOCAL SERVER, but first
- the interface will require that you enter some parameters. These are:
-
- 1) your proposed entry point into the LOCAL SECTOR, and
-
- 2) the proposed viewing direction.
-
- In a more advanced system these parameters will probably be pre-set in
- an option menu and stored in a configuration file, so you don't have
- to enter these details each time.
-
- (Note: There are quite a few places where things can be pre-set like
- this, as you'll see).
-
- Once the CLIENT software has assembled this data it sends the message to
- the LOCAL SERVER. This message consists of:
-
- 1. your ID, a unique identifying code (4 bytes) that defines you
- as a human CLIENT as well as giving you a unique handle for reference
- purposes.
-
- 2. the length of the following message (2 bytes)
-
- 3. the message code (2 bytes), which in this case is REQUEST_TO_ENTER.
-
- 4. the proposed entry location within the remote SECTOR (3 x 32 bits)
-
- 5. the proposed viewing direction within the remote SECTOR (3 x 32 bits)
-
- Note: All data relating to position and velocity is sent as 4 bytes in
- fixed decimal format, with 2 bytes integer and 2 bytes fraction, integer
- fraction signed.
-
- The connection between the CLIENT and the LOCAL SERVER is a buffer
- that is a LINE for the CLIENT and a VIRTUAL LINE for the SERVER.
-
- A daemon type function transfers the message across to the SERVER's
- VIRTUAL LINE (and visa versa).
-
- The reason this is done is so that the software for a REMOTE SERVER and
- the LOCAL SERVER will be the same, except that the daemon will be
- different (ie transfering data to and from a modem, serial line, socket,
- or whatever). So as far as the SERVER is concerned it is running
- autonomously from the CLIENT and the human interface handling software.
- (in fact a REMOTE SERVER is the same software on another machine,
- complete with it's own CLIENT and USER who calls it their LOCAL SERVER. A
- central SERVER simply has lots of physical lines for connection, whereas
- the server on your local machine will have 1 physical LINE (eg modem) but
- many VIRTUAL LINES so many people can enter your PRIVATE PERMASPACE and
- reside in your LOCAL SERVER over the one LINE.)
-
- The LOCAL SERVER checks its internal database of objects to see if you are
- allowed to enter at the specified point (more on that in a moment) then
- sends a MOVE_TO message back to the CLIENT. This includes the CLIENT's
- ID to make sure the right person gets the message (not necessary
- obviously as you're the only one logged into your machine), the message
- length, the messgae type (MOVE_TO) in this case, a location
- tuple, a direction tuple and a velocity tuple (which is zero in this
- case). Now it looks like we're already sending redundant information, but
- these are generic commands that can apply to many situations.
-
- Your CLIENT software now gets this MOVE_TO message and can throw up
- an image on the screen which shows what the SECTOR looks like from this
- viewpoint.
-
- What's there to display? Well by default the 'floor' of the sctor is
- blue and can be displayed as a grid. The spacing between the lines of the
- grid, and whether it is solid or wireframe is a configurable option and is a
- function of the display software, not of the system as a whole.
-
- The range of co-ords is 2**16 (65536), signed, as a 32 bit fixed decimal
- number. This effectively gives a cube 65536 units on a side. That seems
- small but think of each unit as one metre. This means the SECTOR is about 65kms
- cubed, with increments down to 1/65 mm. I really think this will cator
- for system (and user) requirements for a long time to come. There is
- room for much more detail than this actually (2**32 times more) as is
- shown later under PRIVATE PERMASPACE.
-
- Okay, so we see a blue grid below us. Our CLIENT software is keeping
- track of our velocity and co-ords at the last vector change (ie time
- stamped when we received the MOVE_TO message) in its internal object
- database (this is separate from the SERVER's object database).
- So a simple look at the time and a scan of the object database will give the
- current location of all objects and the screen can be updated accordingly.
- If your machine is slow this screen update is slow etc.
-
- Now that you're logged into the LOCAL SERVER things get a bit more
- interesting. To make things a bit clearer I'll skip over the details a
- bit here and get to a remote connection.
-
- Suffice to say that the objects contained in the LOCAL SERVER all belong
- to your PRIVATE PERMASPACE. There may be objects here, for instance that
- represent your hard disk and so you may have a graphical operating system
- where you can move files, launch applications etc. You can construct
- objects and store them for later use. Certain areas may be defined as
- doorways to the control of real-world apparatus by telepresence etc.
-
- You now have your own SECTOR, a whole world really, in which to create
- and move. This system in later implementations may be tailored to the
- host machine and become a GUI like MS Windows or OpenLook etc, making the
- Cyberterm well worth using on its own.
-
- The next step is to send a TRANSFER_SECTOR command. This will move you
- to another SECTOR. This will obviously be a REMOTE SECTOR. It's up to
- you to specify a legal SECTOR you wish to transfer to and it's up to
- your LOCAL SECTOR CONTROLLER to know how to connect to the SECTOR.
- Asumming all this has been set up (the connection details for each physical
- line your SC has will be defined in the configuration files), your LOCAL SC
- (for a modem connection) dials up the remote SC and identifies itself as
- an SC that has a CLIENT that wants to enter. This is sent as a
- REQUEST_TO_ENTER command (as before). Your CLIENT software knows that to
- issue a TRANSFER_SECTOR message you must enter a location and view
- direction so it prompts you for them (or gets it from pre-set options
- as before). The local SC passes the info on to the remote SC. If the
- request message is okay, a MOVE_TO command is sent from the remote SC
- to the local SC which now knows that any data coming in from the CLIENT
- (on LINE x) is transfered straight to the remote SC (on LINE y) and visa versa.
- This is easy to implement because each message has the CLIENT ID at the
- beginning, so it is a simple matter for the SC to chech to see if that CLIENT
- has a redirection flag set. If the flag is set, the SC gets the message length
- (the next 16 bits of the message) and then gets the whole remainder of the
- message as a block and passes it directly out to the redirected line.
-
- Now that your CLIENT software has a new location and viewdirection it
- adjusts it's internal object database and updates the screen accordingly
- (the blue grid). The SECTOR you came from is represented by a single
- OBJECT (a blue cube by default) that is your PRIVATE PERMASPACE.
-
- When you entered the SECTOR the SC sent a message of its own to all
- other users who are within NEAR (100 units) of where you entered.
- These messages say what your ID is, the message length, the message type
- (PERSONAL_ASPECT_DATA), your vector, viewdirection and location (this is
- actually a PERSONAL_ASPECT_DATA message which has ID, vector and
- location in the front of the message but without the ASPECT data as the
- SC doesn't have this yet).
-
- These other users may have their systems set up to ignore these
- (unexpected) messages, but if they process them then you,
- the new user, will appear on their screens in the appropriate place and will be
- placed in their individual object databases. They may also have a
- database of 'know ASPECTS' and can check to see if they already know
- what you look like and so can display you in your full glory straight
- away. Alternatively they may have their system set up to automatically request
- your APSECT if it is unknown and to display it then.
-
- Now you can send a message (or a more sophisticated system would be
- pre-set) to ask the REMOTE SC what the brief details are of all users
- within NEAR of your location (that is, to send you PERSONAL_ASPECT_DATA
- messages with ID, vector and direction. This is a PERSONAL_ASPECT_DATA message.
- The SERVER sees that the CLIENT ID you sent doesn't match the ID of the
- sender (by checking whose on that LINE) and so it know the message must be
- a request for information. It looks for the ASPECT data in its own database
- or asks the CLIENT in question for the data, then sends the information
- back to you. This data is added into your CLIENT's object database (with
- a time stamp) and the objects appear on your screen with the default
- ASPECT. You can request the details of other users over different distances
- first off if you like. Once you know the ID of other users you can
- REQUEST_ASPECT_DATA of a specific ID, to whatever level of detail of
- ASPECT exists. So on your screen these other users appear as arrows
- (their default ASPECT) or their real shape (ie higher level ASPECTS).
-
- When you move (that is, change your velocity or direction) your CLIENT
- automatically sends a message (MOVE_TO) to the SERVER. If this is okay by
- the SERVER then it sends a MOVE_TO message to you telling you where to
- move to (the reason for this is made clear later) and then the SERVER
- distributes the message to all NEAR CLIENTS. In this way, as you watch
- your screen with these objects moving around in straight lines until
- they change vector or velocity when you get a message from the REMOTE
- SC telling you their new velocity/direction. If you turn around your
- system sends a MOVE_TO message that is distributed and others see your
- shape turn around etc.
-
- It is important to note that there is no collision control and it is quite
- possible for you to move straight through someone else. This is a
- controversial decision that is open for objections, but (as will be seen
- later) is not always true and it is within the current CP to change this.
-
- Note: The only possible exception to this is stopping over a PERMASPACE
- unit you do not own.
-
- An optional message that you can send to the SC is CHANGE_UPDATE_RATE
- which tells the SC how often to send you location, vel etc updates
- of all CLIENTS within a given distance of yourself. Normally you would
- have to request this information specifically and the position of users
- you see on the screen may be false (for example a user may drift out
- of the NEAR distance from you but your object database is still tracking
- them saying they are moving at such and such a vector and speed when
- actually they may have changed direction etc. So with a CHANGE_UPDATE_RATE
- message you can request to be updated on the status of users who are
- NEAR or FAR or whatever say every 10 seconds. Of course if they move when
- they are within NEAR of you then you will be automatically updated anyway).
-
- Other commands within a SECTOR are SEND_MAIL, REQUEST_PRIVATE_PERMASPACE etc.
-
- Similarly to requesting the ASPECT of users in the area, you can
- request the ASPECT of PERMASPACE in the area.
-
- PERMASPACE is permanaent regions that default to blue.
-
- These will usually consist of PRIVATE PERMASPACE but some regions may
- be owned by the SC such as public database access areas and public
- bulletin boards (more on these later).
-
- Just like CLIENTS, PERMASPACE has a default ASPECT that is a blue cube
- that occupies the unit cube that is the centre of its local co-ordinate
- space. Requests for higher level ASPECTS may reveal these cubes to be
- buildings, flashing lights or data structures etc.
-
- A PRIVATE PERMASPACE ASPECT may reveal that it belongs to a friend of
- yours. (It may his name on top or maybe you recognise his style of
- castle!)
-
- You can move through PERMASPACE but you CANNOT stop (ie have 0 velocity)
- when in a unit cube of PERMASPACE which does not belong to you.
-
- So you stop one unit away (VERYCLOSE) and send a
- REQUEST_TO_ENTER_PRIVATE_PERMASPACE. This is interpreted by the SC as
- a TRANSFER_SECTOR message, to the LOCAL SERVER of the user who owns
- that PPS. If the request is okayed by the owner then you are sent a
- MOVE_TO message that moves you to the coords of the PP.
-
- Now you have transfered to a new SECTOR and are controlled by
- the owner's private SC on his machine. The remote SC you were controlled
- by now routes all your data straight to the LINE that that new SC is on.
- (in a similar way to how your LOCAL SC is re-routing all your data
- straight through to the modem).
-
- Once again your screen is blank and you can request to see what's around
- you. This person may have his SECTOR set up to look like a lounge room
- or as rolling hills etc. All messages from users who you could see before
- (ie those outside that unit cube of PPS that you're in) are filtered out
- to reduce bandwidth requirements (you may, for instance want to keep mail
- coming through. If you have a powerful system you may still get all
- 'outside' messages but make the walls of the living room appear
- transparent like smoked glass etc).
-
- Now that you are in his SECTOR you must abide by his rules. If you send
- a MOVE_TO message that will make you collide with objects in his PPS (eg a
- chair or wall) then his sector can return okay for that request, but
- when it calculates that you've hit a wall, it can send an addittional
- MOVE_TO message that sets your velocity to zero. In this way you must
- follow the rules he has set up in his PPS. Obviously if he proves to be
- obnoxious you can send a EXIT_SECTOR message that the main REMOTE SC
- intercepts and so moves you back out into public cyberspace,
- garuanteed.
-
- Other users can enter the PPS of your frined at the same time so you
- can have a 'private conference with only those present'. At that time
- his LOCAL SC has set up secondary virtual LINES to allow the
- messages from several remote CLIENTS to come down the one modem
- connection. As each message is preceeded by the message senders ID, it's
- a fairly simply task for the SC to put the incoming messages into
- the appropriate virtual LINE buffers so the it thinks there are lots of
- people/modems connected up.
-
- Of course, the main remote SC may also provide private conference rooms where
- similar duscussion can take place.
-
- This PPS may alternatively be the front end to access a commercial
- database, a game service, a ticket sales office etc.
-
- So you want to establish your own PPS within the public SECTOR? You send
- a REQUEST_TO_ACQUIRE_PRIVATE_PERMASPACE message that is sent via the REMOTE
- SC to anyone who is CLOSE to you (within 10 units). If less than 50% of
- those nearby say 'no' to the SC then you aquire 1 unit of PPS and this is
- registered in the SC's object database. You can optionally send
- PERMASPACE_DATA messages to the SC that define the ASPECT of your PPS to
- whatever level of detail you desire so others can see your new
- acquisition. Clearly, you can aquire several PPS units next to each other
- and build up a composite structure that is more impressive.
-
- This acquisition is monitored by the REMOTE SC and there may be limits defined.
-
- Some reqions of PPS that belong to commercial users may be large. For example
- a database service for shares information may have a large area of PPS that
- (when you request to see higher level aspects) may be a large building
- surrounded by wide grass areas with fountains and gardens. Maybe there
- would be large areas within the owned PPS block that has no higher ASPECT so
- that in a crowded area of many PPSs the structure will stand out as it
- has all this 'open' space around it. In the same way office blocks today
- in large dense city areas surround themselves with grassy promenades and
- foyers with open areas and plants. Of course a default level display
- would show just a large matrix of blue wireframe cubes.
-
- You can send mail to a friend by several methods. The most straight
- forward would be to use the SEND_MAIL message where you specify the
- recipients ID and then the message size and then the message itself.
- (no set format). The mail will be sent straight to his LINE.
-
- He may have his CLIENT software set up so mail appears as a flashing icon on
- the computer screen or as a full letter box outside the little cottage that is
- his PPS.
-
- Mail can also be sent to a location (using an AGENT) and the SC will
- try to inform the owner. This AGENTS may have the ASPECT of a piece of paper
- or an envelope or a flyer with the message as text, built into its ASPECT.
-
- In a similar way a true bulletin board could be set up, where people
- could leave messages for others to read simply by leaving AGENTS at
- predefined locations setup to be massage areas.
-
- So you can conference with otheres, send mail, access commercial
- services etc.
-
- The commercial services may first connect to the system using their
- original 2D flat screen interface, so when you enter their PPS you just
- see a single screen. In this way the interface changes would be minimal
- to start with but they could develop better interfaces to make data
- access more efficient. A statistics service could have a PPS where data was
- represented as dynamic 3D structures etc.
-
- Probably the most useful items within the cybersapce are your AGENTS.
- These items exist as packets of messages that together form an entity
- that is a type of OBJECT. See the comprehensive definition later on for
- details. AGENTS can do whatever you can do, in your place. Some AGENTS
- are simply OBJECTS that you use (for instance a 'design-an-aspect' AGENT
- may allow you to draw items in 3D (walls, texture, motion etc) by issuing
- messages to define ASPECT as it is moved by your Glove when certain gestures
- are used. It may be an access key tool (eg you might buy a '10 shot' AGENT
- from a database service. When you want to access that database you instruct
- the AGENT as to what you want. The AGENT then goes off to the database's
- PPS (moving as any other CLIENT would, so others would see it travelling)
- and gets a high prioirty of service (because you paid for it!) and also
- knows how the database works and so can access the data faster and then
- mail the data back to you (or maybe return to you itself with its ASPECT
- changed to show you the data) and after the tenth use it doesn't come back.
-
- The last sort of AGENT is independant. These actually are macro
- languages that are executed by the SC and may act as guides
- to newcomers or perform tasks within the sector for you (ie like a
- servant). They can exist by themselves. You can have an AGENT that
- 'lives' in your PPS and answers requests to enter from other CLIENTS while
- you are tied up somewhere else. Now this brings on all sorts of
- possibilities. You could send an AGENT to a conference in your place and
- it may respond to text as a human would, to gather data for you. For
- this reason and others, there is one strict rule, and that is that the
- default ASPECT of AGENTS are a white star made of three perpendicular
- axes.
-
- Another example is to have several AGENTS that travel with you in unison
- and which have ASPECTS that fit into yours to make one larger, more
- impressive ASPECT.
-
- One ASPECT detail that hasn't been mentioned is sound. Obviously a sound
- interface would be good (so you can talk to people you meet rather than
- just sending mail or typing stuff in during a private conference). Sound
- would be easy enough to implement into the SEND_MAIL message protocol
- (you get mail from someone who is in such and such a direction
- therefore the headphones position the sound source accordingly). But I
- would like to incorporate it into the ASPECT as well so you could hear
- someone comming, even if you were looking in the wrong direction.
-
- Due to its complexity, however, sound ASPECT details will be left to
- future CT implementations.
-
- Note: It's clear that this system is open to abuse to rogue CLIENTS that send
- invalid messages. Or AGENTS roaming around accruing PPS for their owner.
- Or worse still, AGENTS with the ID bits set to indicate it is a human,
- sent out to bother people etc. The buck will have to stop at the SERVER
- and so this program/system could end up being a pretty awesome beast as far
- as functionality goes. This is where the 'God' concept comes in. It could be
- implemented, for instance, to force collisions when OBJECTS are coincident,
- or to limit speed etc. This amount of control is only limited to the SERVER
- implementation. Some SECTORS may exist as lawless grottos where no-one is
- who they say they are and CLIENTS immitate you once they have your ID etc.
- Others SECTORS may be impecably realistic and well behaved (sort of like the
- difference between UNLAWFUL/EVIL and LAWFUL/GOOD in AD&D). This protocol
- allows for all such systems to work together.
-
-
-
- SOFTWARE STATUS
-
- The system so far has a CLIENT that connects to the LOCAL SERVER and
- allows the user to move around within their own SECTOR, requesting
- information on and displaying PERMASPACE objects that are already in the
- SERVER's object database. The default objects in the SERVER are 3D block
- representations of the directory structure of the hard disk and are created
- when the SERVER is initialised.
-
- This is all done with solids polygons. Calculations are in floating point
- and are being modified to fixed point maths before any more work is done.
- The virtual line/modem links are implemented but not tested.
-
- The first release of the software will not address display, interface or
- speed related problems. It will provide a simple base framework upon which
- others may build, knowing that whatever additions are made, they will still
- be able to connect to other users on other systems.
-
- This system currently works on a PC and on a SUN (X11).
-
- The graphics library used is VOGLE, but REND386 is being incorporated
- for 386 PCs. An Amiga version is in the works (mainly just requires the
- VOGLE driver). VOGLE is available from most ftp mirror archive sites, I got
- it from the Australian ftp mirror site, archie.au:/graphics/graphics/echidna
-
- The nature of the system will be such that if you have a PC XT with
- hercules graphics then you can display only wire frame images at 1 frame per
- second (or whatever the software can manage). If you have an Indigo or
- similar then you are lucky enough to be able to display 30 frames a second,
- solid or rendered. The idea is that all the different systems will be able to be
- functionally connected together in a meaningful manner. If you have a full
- body suit, you get better integration into the cyberspace etc.
-
- The code is in ANSI C. This system is ideal stuff for C++ but that would limit
- the platforms we could easily port to (and not enough people are comfortable
- with it yet).
-
- SOFTWARE RELEASE
-
- Initial software release is late December 1992, with possible beta releases
- before that (September/October). A mail list exists for those wishing to 1)
- receive the latest news on the system as it is released 2) those wishing
- to offer programming assistance, and 3) those who wish to receive the
- beta release. Just email me, requesting to be added to the list.
-
- Michael Snoswell June 1st, 1992
- snoswell@sirius.ucs.adelaide.edu.au Revised July 17th, 1992
-
-
-